﻿using System.Web;
using System.Web.SessionState;

namespace ModuloSoporte
{
    public static class Global
    {
        /// <summary>
        /// Agrega un valor a sesión.
        /// </summary>
        /// <param name="key"></param>
        /// <param name="val"></param>
        private static void S(string key, object val)
        {
            HttpContext.Current.Session[key] = val;
        }

        /// <summary>
        /// Obtiene un valor de sesión.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <returns></returns>
        private static T GD<T>(string key)
        {
            return (T)(HttpContext.Current.Session[key]??default(T));
        }

        public static string Usuario
        {
            get { return GD<string>("global.Usuario"); }
            set { S("global.Usuario", value); }
        }

        public static string TipoUsuario
        {
            get { return GD<string>("global.TipoUsuario"); }
            set { S("global.TipoUsuario", value); }
        }

        public static long CodEmpresa
        {
            get { return GD<long>("global.CodEmpresa"); }
            set { S("global.CodEmpresa", value); }
        }

        public static string NombreEmpresa
        {
            get { return GD<string>("global.NombreEmpresa"); }
            set { S("global.NombreEmpresa", value); }
        }

        public static int CodSucursal
        {
            get { return GD<int>("global.CodSucursal"); }
            set { S("global.CodSucursal", value); }
        }

        public static string NombreSucursal
        {
            get { return GD<string>("global.NombreSucursal"); }
            set { S("global.NombreSucursal", value); }
        }

        public static bool Logueado
        {
            get
            {
                return !string.IsNullOrEmpty(Usuario);
            }
        }

        public static void CerrarSesion()
        {
            Usuario = "";
            NombreEmpresa = "";
            NombreSucursal = "";
            CodEmpresa = 0;
            TipoUsuario = "";
            CodSucursal = 0;
        }
    }
}
